#pragma once

#include "../robots/IRobot.h"
#include "RobotData.h"

#include <boost/noncopyable.hpp>
#include <map>

// NOTE: game logic not impelented yet

class TheWorld : boost::noncopyable
{
public:
    TheWorld();

    void registerRobot(const IRobotPtr &robot) const;

private:
    mutable std::map<IRobotPtr, RobotData> _robotsWithData;
};

/** Returns singletone instance */
extern const TheWorld &theWorld();
